<template>
    <view>
        <uni-popup ref="popupsuccess" type="message">
            <uni-popup-message type="success" message="刷新成功" :duration="2000"></uni-popup-message>
        </uni-popup>
        <uni-popup ref="popuperror" type="message">
            <uni-popup-message type="error" message="更新失败,请重试" :duration="2000"></uni-popup-message>
        </uni-popup>
        <orderlist-block :list="artList"></orderlist-block>

        <view class="more" v-if="showButtonLoading">
            <uni-load-more :status="more" :content-text="contentText"></uni-load-more>
        </view>
    </view>
</template>

<script>
import wx from 'weixin-js-sdk';
import {
    mapState
} from 'vuex'
import {get_shopping} from "../../../common/api/list";

export default {
    data() {
        return {
            artList: [], // 新闻信息
            more: 'loading',
            showButtonLoading: false,
            currentPage: 1,
            contentText: {
                contentdown: '查看更多',
                contentrefresh: '加载中',
                contentnomore: '没有更多'
            },
        }
    },
    computed: {
        ...mapState(['userinfo'])
    },
    watch: {
        // 检测userinfo的变化
        userinfo(newVal) {
            //userinfo 变好了
            console.log('watch userinfo变化了')
        }
    },

    onLoad: function (option) { //option为object类型，会序列化上个页面传递的参数
    },
    onShow() {
        const that = this
        // 监听文章发送事件
        uni.$on('submitChange', (res) => {
            this.artList = []
            that.currentPage = 1
            console.log('监听文章发送事件')
            that.getList(1);
        })

        this.getList();

        // 分享
        this.shareWx()

    },
    // 下拉刷新
    onPullDownRefresh() {
        console.log('refresh');
        this.getList(1);
    },
    // 上滑加载
    onReachBottom() {
        // this.more == moMore 时候表示已经加载完成,不需要再请求了
        if (this.more == 'moMore') {
            return;
        } else {
            this.getList(2);
        }
    },
    methods: {

        // 微信分享
        shareWx() {
            // 分享给好友代码
            this.$api.shareWx({
                url: window.location.href
            }).then(res => {

                // this.$store.dispatch('clear_systemData')
                this.$store.dispatch('set_systemData', res.data.data)

                const that = this
                //成功
                if (res.ret == 1) {
                    /*
                     *noncestr: "eQhBNUudbCQxwJmQ"
                     *signature: "28533352b0d4e55efda7ecccf8bbbf20b318fd5d"
                     *timestamp: 1579070054
                     */
                    //1.配置js-sdk接口
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: res.data.appId, // 必填，公众号的唯一标识
                        timestamp: res.data.timestamp, // 必填，生成签名的时间戳
                        nonceStr: res.data.noncestr, // 必填，生成签名的随机串
                        signature: res.data.signature, // 必填，签名
                        jsApiList: [
                            "updateAppMessageShareData", //分享给朋友
                            "updateTimelineShareData" //分享给朋友圈
                        ] // 必填，需要使用的JS接口表列
                    });

                    wx.ready(function () {
                        // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。

                        let title = res.data.data.gzhname;
                        let desc = res.data.data.gzhdesc;
                        let imgUrl = res.data.data.apihost + res.data.data.gzhlogo;

                        let link = window.location.href;
                        //分享给朋友 新版本
                        wx.updateAppMessageShareData({
                            // title: !that.$store.state.wxShareTitle ? that.common.getLocalStorage('xiangName') : that.$store.state.wxShareTitle, // 分享标题
                            title: title, // 分享标题
                            desc: desc, // 分享描述
                            link: link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                            imgUrl: imgUrl, // 分享图标
                            success: function () {

                            }
                        });

                        //分享给朋友圈
                        wx.updateTimelineShareData({
                            title: title, // 分享标题
                            link: link,
                            imgUrl: imgUrl,
                            success: function () {

                            },
                            cancel: function () {
                            }
                        });

                    });

                    wx.error(function (res) {
                        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。

                    });

                }
            })
        },

        //获取数据
        // is_pulldownrefresh = 0 原始加载
        // is_pulldownrefresh = 1 下拉刷新数据
        // is_pulldownrefresh = 2 上拉加载数据
        getList(is_pulldownrefresh = 0, page = this.currentPage, num = 6) {

            if (is_pulldownrefresh === 0 || is_pulldownrefresh === 1) {
                // 显示顶部加载
                uni.showLoading()
            } else if (is_pulldownrefresh === 2) {
                this.showButtonLoading = true
            }
            // 为了显示
            var _this = this

            this.$api.get_shopping({
                page: page,
                num: num,
            }).then(res => {
                if (res.code === 1) {
                    if (res.data.length === 0) {
                        //加载完成
                        _this.more = 'moMore'
                        _this.showButtonLoading = true
                    } else if (res.data.length < num) {
                        //如果本次加载的数量小于num说明已经获取完了
                        _this.more = 'moMore'

                    }

                    _this.artList = _this.artList.concat(res.data)
                    _this.currentPage = _this.currentPage + 1;

                    if (is_pulldownrefresh === 1) {
                        // is_pulldownrefresh = 1 下拉刷新数据
                        setTimeout(() => {
                            //停止加载
                            uni.stopPullDownRefresh();

                            //提示刷新成功
                            _this.$refs.popupsuccess.open()

                            //隐藏加载
                            uni.hideLoading()

                        }, 1000)
                    } else if (is_pulldownrefresh == 2) {
                        // is_pulldownrefresh = 2 上拉加载数据
                        setTimeout(() => {
                            //隐藏加载
                            uni.hideLoading()

                        }, 1000)
                    } else {
                        //隐藏加载
                        uni.hideLoading()
                    }

                } else {
                    //提示刷新成功
                    _this.$refs.popuperror.open()
                    //隐藏加载
                    uni.hideLoading()
                }


            }).catch(() => {

            })
        }
    }
}
</script>

<style>

</style>
